The management of storage accesses in an out-of-order execution processor is a complex problem. Traditional techniques rely on a number of discrete and distributed controllers to manage the relationship between the program ordered Loads and Stores. While these techniques achieve the required functionality, they present wiring and cycle time difficulties because of the global wiring necessary and the difficulty in keeping all execution units busy. Throughout this disclosure Load and Store operations may be referred to as Load and Store instructions or simply Loads and Stores.
There is a need, therefore, to incorporate all the functionality needed to manage out-of-order execution Loads and Stores into a single structure that uses an architecture where control is embedded into the data used to manage Loads and Stores. This type of architecture is sometimes termed a data-flow architecture as opposed to a control flow architecture.